/**
 * @copyright   Kevin
 * @license     LGPL 3.0
 * @author      Kevin
 * @checkout    https://gitee.com/bigearrabbit/KevinQt.git
 * @file        KevinListItem.h
 */

#ifndef KevinListItem_H
#define KevinListItem_H

// Qt
#include <QString>

namespace Kevin {

/**
 * @brief Kevin List Item
 *
 */
class ListItem {
public:
    /** @brief Standard constructors and destructors */
    ListItem();
    virtual ~ListItem();

    /** @brief Copy constructor and equal operator */
    ListItem(const ListItem&);
    ListItem& operator=(const ListItem&);

public:
    static const int count;

    // clang-format off
    //START KEVIN CAA WIZARD SECTION KevinListItem PARAM DECLARATION

    /**
     * @brief Item Title
     * @author Kevin
     * @id 1
    */
    QString Title;

    /**
     * @brief Icon Source
     * @author Kevin
     * @id 2
    */
    QString IconSource;

    /**
     * @brief Item Type
     * @author Kevin
     * @id 3
    */
    QString Type;

    /**
     * @brief Item iid
     * @author Kevin
     * @id 4
    */
    QString IID;

    /**
     * @brief Sub Type
     * @author Kevin
     * @id 5
    */
    int SubType;

    //END KEVIN CAA WIZARD SECTION KevinListItem PARAM DECLARATION

    // clang-format on

public: // functions
    /**
     * @brief set members to default value
     * @return void
     */
    void clear();

    /**
     * @brief cout members for debug
     * @return void
     */
    void dump() const;

    /**
     * @brief set sample value for debug
     * @return void
     */
    void sample();
};
} // namespace Kevin
#endif
